package com.tl.spider.service.ui;

import java.io.IOException;
import java.util.List;
import java.util.Scanner;

import com.tl.spider.config.Config;
import com.tl.spider.pojo.UrlTaskPojo;
import com.tl.spider.service.TaskService;
import com.tl.spider.utils.common_utils.RedisUtil;
import com.tl.spider.utils.dedicated_utils.SeedGeneratorUtil;

/**
 * 用户接口类
 * 
 * @date 2021年7月16日
 * @author Antg
 */
public class UIManager {
	private static Scanner scanner = new Scanner(System.in);

	/**
	 * ui启动入口
	 * 
	 * @throws IOException
	 * @date 2021年7月16日
	 * @author Antg
	 */
	public static void uiStart() throws IOException {
		// 1.生成任务列表
		List<UrlTaskPojo> seedPojoList = SeedGeneratorUtil.getSeedPojoList(
				Config.seed_file, Config.seed_charset);
		// 判断redis是否开启
		RedisUtil redisUtil = RedisUtil.getInstance();
		if (!redisUtil.isOk(redisUtil.getJedis())) {
			System.out.println("redis未开启,请先开启redis,否则日志系统将无法工作");
			return;
		}
		// 打印任务列表
		System.out.println("--------->即将爬取的任务列表<---------");
		seedPojoList.forEach(e -> System.out.println(e.getUrl()));
		System.out.println("============功能列表============");
		System.out.println("1 : 增量爬取");
		System.out.println("2 : 定时增量爬取");
		System.out.println("3 : 获取日志信息");
		System.out.println("0 : 退出系统");
		System.out.println("==============================");
		while (true) {
			System.out.print("请选择操作:");
			String op = scanner.next();
			if (!op.equals("1") && !op.equals("2") && !op.equals("3")
					&& !op.equals("0")) {
				System.out.println("输入有误,请重新输入");
				continue;
			}
			switch (op) {
			case "1":
				TaskService.excuteIncrement(seedPojoList);
				break;
			case "2":
				TaskService.excuteWithTimer(seedPojoList);
				break;
			case "3":
				TaskService.getLog();
				break;
			case "0":
				System.out.println("退出成功!");
				System.exit(0);
			}
		}
	}
}
